package gnv;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class Cliente {

	private Object idCliente;
	private String nombre;
	private String telefono;
	private String descTelefono;
	private String calle;
	private String numero;
	private String piso;
	private String depto;
	private String descripcion;
	private String barrio;
	private String localidad;
	private String sexo;
	private String fechanac;
	private String mail;
	private int zona;
	
	
	public void setIdCliente(Object object) {
		this.idCliente = object;
	}
	public Object getIdCliente() {
		return idCliente;
	}
	public String getNombre() {
		return nombre;
	}
	public void setNombre(String nombre) {
		this.nombre = nombre;
	}
	public String getTelefono() {
		return telefono;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public String getDescTelefono() {
		return descTelefono;
	}
	public void setDescTelefono(String descTelefono) {
		this.descTelefono = descTelefono;
	}
	public String getCalle() {
		return calle;
	}
	public void setCalle(String calle) {
		this.calle = calle;
	}
	public String getNumero() {
		return numero;
	}
	public void setNumero(String numero) {
		this.numero = numero;
	}
	public String getPiso() {
		return piso;
	}
	public void setPiso(String piso) {
		this.piso = piso;
	}
	public String getDepto() {
		return depto;
	}
	public void setDepto(String depto) {
		this.depto = depto;
	}
	public String getDescripcion() {
		return descripcion;
	}
	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}
	public String getBarrio() {
		return barrio;
	}
	public void setBarrio(String barrio) {
		this.barrio = barrio;
	}
	public String getLocalidad() {
		return localidad;
	}
	public void setLocalidad(String localidad) {
		this.localidad = localidad;
	}
	public String getSexo() {
		return sexo;
	}
	public void setSexo(String sexo) {
		this.sexo = sexo;
	}
	public String getFechanac() {
		return fechanac;
	}
	public void setFechanac(String fechanac) {
		this.fechanac = fechanac;
	}
	public String getMail() {
		return mail;
	}
	public void setMail(String mail) {
		this.mail = mail;
	}
	
	
	public int getZona() {
		return zona;
	}
	public void setZona(int zona) {
		this.zona = zona;
	}
	public void insertarCliente() throws Exception{
		try{
			String sql = "call cargar_Cliente(?,?,?,?,?,?,?,?,?,?,?,?,?)";
			Connection conn = ConexionDB.dbConnect();
			conn.setAutoCommit(false);
			PreparedStatement ps = conn.prepareStatement(sql);
		    ps.setString(1,  this.getNombre().toUpperCase());
		    ps.setString(2,  this.getTelefono());
		    ps.setString(3,  this.getCalle().toUpperCase());
		    ps.setString(4,  this.getNumero());
		    ps.setString(5,  this.getPiso());
		    ps.setString(6,  this.getDepto());
		    ps.setString(7,  this.getDescripcion());
		    ps.setString(8,  this.getBarrio());
		    ps.setString(9,  this.getLocalidad());
		    if (this.getFechanac()=="") {
		    	ps.setString(10,  "01-01-1900");
		    }else {
		    	ps.setString(10,  this.getFechanac());
		    }
		    if (this.getSexo()=="") {
		    	ps.setString(11, "");
		    }else{
		    	ps.setString(11, this.getSexo());
		    }
		    if (this.getMail()=="") {
		    	ps.setString(12, "");
		    }else{
		    	ps.setString(12, this.getMail().toLowerCase());
		    }
		    ps.setInt(13, this.getZona());
		    ps.execute();
		    conn.commit();

			
		}catch (Exception error){
			
		}
		
	}
	
	
	
	public String getNombre(Object idCliente) {
		String resultado = "";
		try{
			String sql = "select NOMBRE_CLIENTE from cliente where ID_CLIENTE=?";
			Connection conn = ConexionDB.dbConnect();
			conn.setAutoCommit(false);
			PreparedStatement ps = conn.prepareStatement(sql);
		    ps.setObject(1,  idCliente);
		    ps.execute();
		    conn.commit();
		    ResultSet rs = ps.getResultSet();
		    rs.next();
		    resultado = rs.getString(1);
		    rs.close();
		    conn.close();
		}catch (Exception error){
			
		}
		return resultado;
		
	}

	public Cliente getClienteDB(Object idCliente) {
		try{
			String sql = "select NOMBRE_CLIENTE, " +
					"SEXO_CLIENTE, " +
					"FECHA_NAC_CLIENTE, " +
					"EMAIL_CLIENTE, id_cliente from cliente where ID_CLIENTE=?";
			Connection conn = ConexionDB.dbConnect();
			conn.setAutoCommit(false);
			PreparedStatement ps = conn.prepareStatement(sql);
		    ps.setObject(1,  idCliente);
		    ps.execute();
		    conn.commit();
		    Cliente cli = new Cliente();
		    if (ps.getResultSet().next()){
		    	cli.setNombre(ps.getResultSet().getString(1));
		    	cli.setSexo(ps.getResultSet().getString(2));
		    	cli.setFechanac(ps.getResultSet().getString(3));
		    	cli.setMail(ps.getResultSet().getString(4));
		    	cli.setIdCliente(ps.getResultSet().getObject(5));
		    }
		    conn.close();
		    return cli;
		}catch (Exception error){
		}
		return null;
	}

	
	public void actualizarCliente() throws Exception {
				String sql = "update cliente set NOMBRE_CLIENTE = ?, " +
					" SEXO_CLIENTE = ?, FECHA_NAC_CLIENTE = ?, EMAIL_CLIENTE = ? " +
					"where ID_CLIENTE=?";
			Connection conn = ConexionDB.dbConnect();
			PreparedStatement ps = conn.prepareStatement(sql);
		    ps.setString(1, this.getNombre().toUpperCase());
		    ps.setString(2, this.getSexo());
		    ps.setString(3, ClienteGUI.FechaParaMySql(this.getFechanac()));
		    ps.setString(4, this.getMail().toLowerCase());
		    ps.setObject(5, this.getIdCliente());
		    ps.execute();
		    conn.close();
		
	}


	
	
}
